<?php

namespace app\http\middleware;

use think\facade\Cache;

class ApiUserAuth
{
    public function handle($request, \Closure $next)
    {
        // 获取头部信息
        $param = request()->header();
        // 不含token
        if(!array_key_exists('token',$param)) TApiException('非法token禁止操作',20003,200);
        // 当前登录用户的token （是否登陆）
        $token = $param['token'];
        $user = Cache::get($token);
        if(!$user)  TApiException('非法token,请重新登陆',20003,200);
        // 将 token和 userid这些常用的参数放在request中 
        $request->userToken = $token;
        // 判断第三方登录还是其他登陆
        $request->userId = array_key_exists('user_id',$user) ? $user['user_id'] : $user['id'];
        $request->userTokenUserInfo = $user;
        return $next($request);
    }
}
